﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace Tisbi.LawFirm.DAL.Models
{
    /// <summary>
    /// модель исков
    /// </summary>
    public class Lawsuits
    {
        /// <summary>
        /// уникальный номер
        /// </summary>
        [Key]
        public int Id { get; set; }

        /// <summary>
        /// флаг активности
        /// </summary>
        public bool IsActive { get; set; }

        /// <summary>
        /// прикреплённые файлы
        /// </summary>
        public List<byte[]> FileLinkBytes { get; set; }

        /// <summary>
        /// дата создания
        /// </summary>
        public DateTime Created { get; set; }

        /// <summary>
        /// номер
        /// </summary>
        public string Number { get; set; }

        /// <summary>
        /// тип иска
        /// </summary>
        public virtual CourtType CourtType { get; set; }

        /// <summary>
        /// федеральный округ
        /// </summary>
        public virtual District District { get; set; }

        /// <summary>
        /// истец
        /// </summary>
        public virtual Customers Plaintiff { get; set; }

        /// <summary>
        /// ответчик
        /// </summary>
        public virtual Customers Defendant { get; set; }

        /// <summary>
        /// третья сторона
        /// </summary>
        public virtual Customers ThirdParties { get; set; }

        /// <summary>
        /// вид искового заявления
        /// </summary>
        public virtual StatementOfClaimType StatementOfClaimType { get; set; }

        /// <summary>
        /// содержание требований
        /// </summary>
        public string ContentRequirements { get; set; }

        /// <summary>
        /// сумма основного долга
        /// </summary>
        public decimal PrincipalDebt { get; set; }

        /// <summary>
        /// сумма пени
        /// </summary>
        public decimal LatePaymentCharge { get; set; }

        /// <summary>
        /// сумма иска
        /// </summary>
        public decimal ClaimAmount { get; set; }

        /// <summary>
        /// госпошлина
        /// </summary>
        public decimal NationalDuty { get; set; }

        /// <summary>
        /// решение
        /// </summary>
        public Outcome Outcome { get; set; }

        /// <summary>
        /// сумма выплаты
        /// </summary>
        public decimal OutcomeAmount { get; set; }

        /// <summary>
        /// суд
        /// </summary>
        public virtual Court Court { get; set; }

        /// <summary>
        /// номер дела в суде
        /// </summary>
        public string CourtCaseNumber { get; set; }

        /// <summary>
        /// контакты судьи
        /// </summary>
        public string ContactsOfJudge { get; set; }

        /// <summary>
        /// дата слушания
        /// </summary>
        public DateTime? HearingDate { get; set; }

        /// <summary>
        /// место нахождения материалов дела
        /// </summary>
        public virtual Court LocationCaseMaterials { get; set; }

        /// <summary>
        /// дата решения
        /// </summary>
        public DateTime? DateOfDecision { get; set; }

        /// <summary>
        /// содержание решения
        /// </summary>
        public string ResultOfDecision { get; set; }

        /// <summary>
        /// аппеляции
        /// </summary>
        public virtual List<Appeals> Appeals { get; set; }
    }
    
    public enum Outcome
    {
        НетРешения = 0,
        Удовлетворено = 1,
        Откланено = 2
    }
}
